#include <bits/stdc++.h>
using namespace std;
const int INF=0x3f3f3f3f;
int ans=INF;
int n;
const int N=3005;
int a[N],c[N];
bool vis[N];
void dfs(int num,int idx,int cnt){
    if(cnt==3){
        ans=min(ans,num+c[idx]);
        //printf("ans:%d\n",ans);
    }
    for(int i=idx+1;i<n;i++){
        if(vis[i]){
            continue;
        }
        if(a[i]<=a[idx]){
            continue;
        }
        vis[i]=true;
        //printf("i:%d\n",i);
        dfs(num+c[idx],i,cnt+1);
        vis[i]=false;
    }
}
int main(void){
    scanf("%d",&n);
    for(int i=0;i<n;i++){
        scanf("%d",&a[i]);
    }
    for(int i=0;i<n;i++){
        scanf("%d",&c[i]);
    }
    for(int i=0;i<n;i++){
        vis[i]=true;
        dfs(0,i,1);
        vis[i]=false;
    }
    if(ans==INF){
        printf("-1\n");
        return 0;
    }
    printf("%d\n",ans);
    return 0;
}